由於昨天在訓練時沒有存檔路徑,因此訓練完10個epoch的結果存放在'./out/20230815_baike_pretrain/epoch_9.pth'。
pretrain的下一步是Supervised Fine Tuning (SFT),這邊作者有提供了3個數據集,不過我只使用了兩個
mkdir sftdata
cd sftdata
git clone https://github.com/OpenLMLab/MOSS/tree/main/SFT_data
git clone https://huggingface.co/datasets/shibing624/alpaca-zh
之後修改一下data_process.py,並主要修改def sft_process()
內的路徑,直接執行sft資料的前處理
def sft_process():
...
with open('./sftdata/alpaca-zh/alpaca_gpt4_data_zh.json','r') as f:
...
f = open('./sftdata/train_1M_CN/Belle_open_source_1M.json','r')
...
if __name__=="__main__":
sft_process()
然後進行sft訓練,這邊在使用batch_size=32時,發生了記憶體超出(OOM)的問題,因此被迫把batch_size縮小到了16,打算也訓練10個epoch之後看一看結果如何。
if __name__=="__main__":
...
max_epoch = 10
...
batch_size = 16
...
dim = 512
n_layers = 8
...
model.load_state_dict(torch.load('./out/20230815_baike_pretrain/epoch_9.pth'))